1. Field of the Invention
The present invention is generally directed to computing operations performed in a computing system, such as computing operations performed by a processing unit (e.g., a graphics processing unit (GPU)) in a computing system.
2. Background Art
A GPU is a complex integrated circuit that is specially designed to perform data-parallel computing tasks, such as graphics-processing tasks. A GPU may, for example, execute graphics-processing tasks required by an end-user application, such as a video-game application.
There are several layers of software between the end-user application and the GPU. The end-user application communicates with an application-programming interface (API). An API allows the end-user application to output graphics data and commands in a standardized format, rather than in a format that is dependent on the GPU. Several types of APIs are commercially available, including DirectX® developed by Microsoft Corporation of Redmond, Wash. and OpenGL® maintained by the Khronos Group. The API communicates with a driver. The driver translates standard code received from the API into a native format of instructions understood by the GPU. The driver is typically written by the manufacturer of the GPU. The GPU then executes the instructions from the driver.
Although GPUs were historically configured to perform graphics-processing tasks, GPUs are currently being used more and more to perform general-compute operations. In particular, it may be desirable for a GPU to execute video-processing operations.
Unfortunately, conventional GPUs are not configured to efficiently process video data. Each pixel of video data is conventionally 8-bits wide. In contrast, conventional GPUs are typically configured to process memory words that are 32-bits wide. Due to the difference between the width of pixel data (e.g., 8 bits) and the native width of memory words in a typical GPU (e.g., 32 bits), a conventional GPU typically runs a plurality of logic operations over a plurality of clocks to process the video data.
What is needed, therefore, is a GPU, and applications thereof, that can efficiently process video data.